<?php
class UsersController extends AppController {

	var $name = 'Users';
	var $uses = array('User', 'Role');
	 function beforeFilter(){
		parent::beforeFilter();
	}
	function admin_login(){
		if($this->Auth->user()){
			$this->redirect(array('admin' => true,'controller' => 'pages', 'action' => 'display','admin_home' ));
		}
		Configure::write('debug',0);
		$this->layout = 'login';
		if($this->data){
			$this->autoRender = false;
			if($this->Auth->login($this->data)){
				if($this->Auth->user()){
					$this->User->query("Update lastlogin set ipadr='".$_SERVER['REMOTE_ADDR']."',thoigian='".date('Y-m-d h:i:s')."' where id='".$this->Auth->user('id')."'");
				}

				echo  "{success: true}";
			}else{
				echo "{ success: false, errors: { reason: 'Đăng nhập không thành công. Xin vui lòng thử lại.' }}";
			}
		}
	}
	function admin_logout(){
		$this->redirect($this->Auth->logout());//tu dong chuyen trang sau khi logout
	}
		function index($key = null,$lid = null) {
	}
    
 	function admin_delete($id = null)
	{
	if (!$id)
		{
			$this->Session->setFlash(__('Không có bản ghi này.', true));
			$this->redirect(array('action'=>'index'));
		}

	if ($this->User->delete($id))
	{
		$this->Session->setFlash(__('Đã xóa người dùng.', true));
		$this->redirect(array('action'=>'index'));
	 }
 		$this->Session->setFlash(__('Không xóa được người dùng. Xin vui lòng thử lại.', true));
		$this->redirect(array('action' => 'index'));
	}

    function admin_mutildelete($str = null){

        if($str){
            $arrid=explode(',',$str);
        }else{
    		$this->Session->setFlash(__('Đã xóa người dùng.', true));
    		$this->redirect(array('action' => 'index'));
        }
         foreach($arrid as $item){
    		  $this->User->delete($item);
         }
		$this->Session->setFlash(__('Đã xóa người dùng.', true));
		$this->redirect(array('action' => 'index'));
    }
     function admin_index() {

		$this->Users->recursive = 0;
		$key = $this->data['User']['key'];
		$status = $this->data['User']['status'];
		if($key!= null){
			$conditions = array('User.username LIKE '=>'%'.$key.'%');
		}elseif($status != null){
			$conditions = array('User.status' => $status);
		}
		elseif($status != null && $key!= null){
			$conditions = array('User.status' => $status,'User.username LIKE '=>'%'.$key.'%');
		}else{
			$conditions = array();
		}
		$this->paginate = array(
			'conditions'=>$conditions
		);
 		$this->set('users_admin', $this->paginate());
		$this->set(compact('key','status'));
	}
	function admin_add() {
		if (!empty($this->data)) {
			$this->User->create();
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('Thêm mới người dùng thành công.', true));
				$idnew= $this->User->find('first',array('fields'=>'id','order'=>'User.id desc'));
				//debug($idnew);
				$idnew=$idnew['User']['id'];
				$this->User->query("INSERT lastlogin (users_id) value('$idnew')");
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Thông tin không được lưu. Xin vui lòng thử lại.', true));
			}
		}
		$status = $this->data['User']['status'];
		$roles = $this->User->Role->find('list');
 		$this->set(compact('status', 'roles'));

	}
    	function admin_edit($id = null) {

        	if (!$id && empty($this->data)) {
        			$this->Session->setFlash(__('Không có bản ghi này.', true));
        			$this->redirect(array('action' => 'index'));
        		}
        		if (!empty($this->data)) {
					if ($this->User->save($this->data)) {
					$this->Session->setFlash(__('Đã sửa', true));
					$this->redirect(array('action' => 'index'));
					} else {
					$this->Session->setFlash(__('Chưa sủa được.Hãy thử lại.', true));
						}
				}

        		if (empty($this->data)) {
        			$this->data = $this->User->read(null, $id);
        		}
				$status = $this->data['User']['status'];
				$roles = $this->User->Role->find('list');
 				$this->set(compact('status', 'roles'));
				$this->set('model',$this->uses[0]);

	}

     function admin_changepassword($id = null){
		if (!$id && empty($this->data)) {
        			$this->Session->setFlash(__('Không tìm thấy người đùng', true));
        			$this->redirect(array('action' => 'index'));
        	}

        if(!empty($this->data)){
            $oldpass = $this->data['User']['password'];
           $newpass = $this->data['User']['newpassword'];
           $confnewpass = $this->data['User']['confirmnewpassword'];
           $UserInfo = $this->Auth->user();
           $pas = $this->User->find('first',array('conditions'=>array('User.id'=>$UserInfo['User']['id'])));
            if($this->Auth->password($oldpass)!=trim($pas['User']['password'])){
             $this->Session->setFlash(__('Mật khẩu cũ không đúng!', true));
              $this->redirect(array('action' => 'index'));
          	($this->Auth->password($pas['User']['password']));
           }
		   else
		   {
        $this->User->query("update tblusers set password='".$this->Auth->password($newpass)."' where id='".$UserInfo['User']['id']."'");
			 $this->Session->setFlash(__('Mật khẩu được thay đổi', true));
             $this->redirect(array('controller' => 'users','action' => 'index'));
           }
		  // debug ($this->data);
        }

    }

    function admin_change($sid,$cid,$stt){
    	//debug($cid,sid,stt);
		$this->layout='ajax';
		$this->render(false);
		if(isset($cid)){
			$this->loadModel($sid);
			$this->$sid->id= $cid;
			if($this->$sid->saveField('status',$stt)){
				echo 1;
			}else echo 0;
		}
	}
}
?>